package com.ruoyi.campus.service;

import java.util.List;
import com.ruoyi.campus.domain.MyCommodityType;
import com.ruoyi.campus.domain.TreeSelects;

/**
 * 类别Service接口
 *
 * @author zht
 * @date 2021-12-09
 */
public interface IMyCommodityTypeService
{
    /**
     * 查询类别
     *
     * @param typeId 类别主键
     * @return 类别
     */
    public MyCommodityType selectMyCommodityTypeByTypeId(Long typeId);

    /**
     * 构建前端所需要的下拉树结构
     * @param types 分类列表
     * @return  下拉树结构列表
     */
    public List<TreeSelects> buildTypeTreeSelect(List<MyCommodityType> types);

    /**
     * 查询类别列表
     *
     * @param myCommodityType 类别
     * @return 类别集合
     */
    public List<MyCommodityType> selectMyCommodityTypeList(MyCommodityType myCommodityType);

    /**
     * 新增类别
     *
     * @param myCommodityType 类别
     * @return 结果
     */
    public int insertMyCommodityType(MyCommodityType myCommodityType);

    /**
     * 校验类别名称是否唯一
     * @param myCommodityType 类别
     * @return 结果
     */
    public String checkTypeNameUnique(MyCommodityType myCommodityType);

    /**
     * 修改类别
     *
     * @param myCommodityType 类别
     * @return 结果
     */
    public int updateMyCommodityType(MyCommodityType myCommodityType);

    /**
     * 批量删除类别
     *
     * @param typeIds 需要删除的类别主键集合
     * @return 结果
     */
    public int deleteMyCommodityTypeByTypeIds(Long[] typeIds);

    /**
     * 删除类别信息
     *
     * @param typeId 类别主键
     * @return 结果
     */
    public int deleteMyCommodityTypeByTypeId(Long typeId);

    /**
     * 是否存在类别子节点
     * @param typeId 类别Id
     * @return 结果
     */
    public boolean hasChildByTypeId(Long typeId);

    /**
     * 查询是否存在商品引用
     * @param typeId 类别Id
     * @return 结果
     */
    public boolean checkTypeExistComm(Long typeId);
}
